package com.bosssoft.hr.train.j2se.collection;

import com.bosssoft.hr.train.j2se.pojo.User;
import lombok.extern.slf4j.Slf4j;

import java.util.HashSet;
import java.util.Set;

/**
 * @Class HashSetDemo
 * @Description 使用HashSet 存储 10个 User，如果其中有User的数值完全一样要求能否被过滤【注意这意味这重写User的hashcode和equal】
 * @Author TangZaoBang
 * @Date 2023/04/26 19:32
 * @Version
 */
@Slf4j
public class HashSetDemo extends BaseCollectionDemo {
    /**
     * 注意基于接口定义这样右边可以是map的任何实现类
     */
    private Set<User> userHashSet = new HashSet<>();

    /**
     * 对set中的用户进行遍历
     *
     * @return void
     * @author TangZaoBang
     * @date 2023/04/26 19:58
     */
    public void visitByForEach() {
        //调用父类构造取出数据加入到Set中
        User[] users = generateData();
        for (User user : users) {
            userHashSet.add(user);
        }
        //加入重复数据
        User user1 = new User(new Long(1), String.format("BS%03d", 1), "同学" + 1);
        userHashSet.add(user1);
        log.info("Set中元素数量:"+userHashSet.size());
        for (User user : userHashSet) {
            log.info( Constraint.LOG_TAG+"当前User："+user);
        }
    }
}
